package com.ruoyi.web.controller.system;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.system.domain.ClimbingPriceComparisonData;
import com.ruoyi.system.service.CategoryPriceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/***
 * 说明
 * @author:ZZ
 * @date: 2024-12-03  14:49
 **/
@CrossOrigin
@RestController
@RequestMapping("/system/category")
@Api(tags = "首页 及分类  相关接口")
public class CategoryPriceController extends BaseController {

    @Autowired
    private CategoryPriceService service;

    @GetMapping("/buildCategoryTree")
    @ApiOperation("获取分类树形图结构集合")
    public Object buildCategoryTree() {
        Object result = service.getTreeNodelist();
        return success(result);
    }

    // 首页   默认 商品展示
    @GetMapping("/getHomeProductDisplayList")
    @ApiOperation("首页  商品展示  返回结果集合  【首页商品展示，是6个2-5级分类页里面的商品信息】")
    public Object getHomeProductDisplayList() {
        Object result = service.getHomeProductDisplayList();
        return success(result);
    }


    @GetMapping("/getSeeAllByClick")
    @ApiOperation("首页  商品展示 点击 【 See All 】   【对应类别商品展示集合】 ")
    public Object getSeeAllByClick(@RequestParam("categoryId") String categoryId,
                                   @RequestParam("pageSize") Integer pageSize,
                                   @RequestParam("pageNum") Integer pageNum) {

        Object result = service.getSeeAllByClick(categoryId,  pageSize,
                  pageNum);
        return success(result);
    }


    // 首页  根据商品名称搜索框接口
    @GetMapping("/getProductNameSearch")
    @ApiOperation("首页  商品展示  返回结果集合  【 首页商品名称搜索框对应接口 】")
    public Object getProductNameSearch(@RequestParam("name") String name) {
        if (null == name || name.isEmpty()) {
            Object list = service.getHomeProductDisplayList();
            return success(list);
        } else {
            Object result = service.getProductNameSearch(name);
            return success(result);
        }
    }


    @GetMapping("/getPriceOrBrandDetailList")
    @ApiOperation("  商品展示页面 左侧  价格区间接口  和 品牌 调用接口，" +
            "  返回结果集合  【 符合对应价格区间以及对应品牌的商品信息集合 】")
    public Object getPriceOrBrandDetailList(@RequestParam(value = "minPrice",required = false) String minPrice,
                                     @RequestParam(value = "maxPrice",required = false) String maxPrice,
                                     @RequestParam(value = "brand",required = false) String brand,
                                            @RequestParam(value = "className",required = false) String className) {

            Object result = service.getPriceOrBrandDetailList(minPrice,maxPrice,brand,className);
            return success(result);
    }


    @GetMapping("/getProductDetailById")
    @ApiOperation("点击商品，通过商品ID 获取对应商品信息")
    public Object getProductDetailById(@RequestParam("id") String id) {
        if (null == id || id.isEmpty()) {
            return error("ID不能为空");
        } else {
            Object result = service.getProductDetailById(id);
        return success(result);
        }
    }


    @GetMapping("/getProductClassById")
    @ApiOperation("获取当前页面的分类名称以及从本级开始一直到最顶级的节点信息集合---------面包屑------")
    public Object getProductClassById(@RequestParam("categoryId") String categoryId) {
        if (null == categoryId || categoryId.isEmpty()) {
            return error("ID不能为空");
        } else {
            Object result = service.getProductClassById(categoryId);
            return success(result);
        }
    }

}
